/**
 * @Title wheel-utils系统
 * @Package com.senyint.sys.utils
 * @Description 工具
 * @Company 心医国际数字医疗系统（大连） 有限公司
 * @Copyright (c) 2016, 2017, Senyint. All rights reserved.
 * @date 2017年12月7日 下午5:27:01 
 * @author WangNaiFei
 * @version 1.0
 */

package com.senyint.sys.utils;

import java.io.Serializable;

import org.springframework.util.SerializationUtils;

/**
 * {@code CloneUtils}
 * 
 * @Description: 克隆工具
 *               <p>
 * @author WangNaiFei,WangNaiFei@senyint.com
 * @date 2017年12月20日 上午11:53:59
 * @version 1.0
 * @since jdk1.7+
 */
public class CloneUtils {

	/**
	 * 公共克隆方法
	 * <p>
	 * 
	 * @author WangNaiFei, WangNaiFei@senyint.com
	 * @date 2017年3月28日 上午9:40:13
	 * @version 1.0
	 * @param obj
	 * @see org.springframework.util.SerializationUtils
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static <T extends Serializable> T clone(T obj) {
		T clonedObj = null;
		try {
			byte[] serialize = SerializationUtils.serialize(obj);
			Object deserialize = SerializationUtils.deserialize(serialize);
			clonedObj = (T) deserialize;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return clonedObj;
	}
}